Applying Aspect-Oriented Programming to the Intelligent Synthesis Environment
نویسنده
چکیده
I discuss a component-centered, aspect-oriented system, the Object Infrastructure Framework (OIF), NASA's initiative on Intelligent Synthesis Environments (ISE), and the application of OIF to the architecture of ISE. A critical issue in developing component-based and distributed systems is getting the assembled set of components to follow the policies of the overall system. To achieve ilities such as reliability , availability, responsiveness, performance, security, and manageability, all system components must consistently perform certain actions. Unfortunately, developers of off-the-shelf or pre-existing components, blithely unaware of or indifferent to these requirements, do not code the appropriate policy support. For custom components, the developers are likely to be domain experts, not experts in systems and distributed computing, and are similarly unlikely to consistently and correctly code the calls to ility support routines. Furthermore, policies change over a system's lifetime. Tracking these changes in the components will be difficult or (lacking the component source code) impossible. Separating out the specification and implementation of ili-ties and providing mechanisms for weaving together the main functionality with the ility code is a prime example of the potential leverage of aspect-oriented programming (AOP). In earlier papers, we described the Object Infrastructure Framework (OIF), a CORBA centered , aspect-oriented system for achieving ilities in distributed systems [4, 5]. OIF realized the following key ideas: 1. Intercepting communications. OIF intercepted and manipulated communications among functional components, invoking appropriate " services " on these calls. Semantically , this is equivalent to wrapping or filtering [1] on both the client and server side of a distributed system. The next five points can be understood as describing the architecture of a flexible wrapping system. 2. Discrete injectors. Our communication interceptors are first class objects: discrete components that have (object) identity and are invoked in a specific sequence. We call them injectors. In a distributed system, an ility may require injecting behavior on both the client and the server. (Figure 1 illustrates injectors on communication paths between components .) Injectors are uniform so we can build utilities to manipulate them. 3. Injection by object/method. Each instance and each method on that object can have a distinct sequence of injectors.
منابع مشابه
Applying Aspect-Oriented Programming to Intelligent Synthesis
I discuss a component-centered, aspect-oriented system, the Object Infrastructure Framework (OIF), NASA's initiative on Intelligent Synthesis Environments (ISE), and the application of OIF to the architecture of ISE. A critical issue in developing component-based and distributed systems is getting the assembled set of components to follow the policies of the overall system. To achieve ilities s...
متن کاملA Software Architecture for Intelligent Synthesis Environments
1 0-7803-6599-2/01/$10.00 © 2001 IEEE Abstract—NASA’s Intelligent Synthesis Environment (ISE) program is a grand attempt to develop a system to transform the way complex artifacts are engineered. This paper discusses a “middleware” architecture for enabling the development of ISE. Desirable elements of such an Intelligent Synthesis Architecture (ISA) include remote invocation; plug-and-play app...
متن کاملA Software Architecture for Intelligent Synthesis Environments1
1 0-7803-6599-2/01/$10.00 © 2001 IEEE Abstract—The NASA’s Intelligent Synthesis Environment (ISE) program is a grand attempt to develop a system to transform the way complex artifacts are engineered. This paper discusses a “middleware” architecture for enabling the development of ISE. Desirable elements of such an Intelligent Synthesis Architecture (ISA) include remote invocation; plug-and-play...
متن کاملA Family of Aspect Dynamic Weavers
Aspect-oriented programming is today mainly promoting the approach of applying aspects statically by means of preprocessors. We do find some work towards applying aspects dynamically but only limited to specific environments and no work so far has been directed toward our domain of interest which is deeply embedded systems characterized by very small memory and power. Also the work undertaken s...
متن کاملExtensible and Adaptable System Software
Concurrent real-time software systems are vulnerable to performance saturation and reliability concerns due to environmental influences. Building intelligent concurrent systems that are able to adapt to environmental changes and reconfigure themselves is the key to avoiding performance degradation of concurrent real-time software systems and ensuring the liveness property of such systems. In th...
متن کامل